package com.codedancer.campus.manager.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.manager.service.bo.admin.AdminAddOrUpdateBo;
import com.codedancer.campus.manager.service.bo.admin.AdminLoginBo;
import com.codedancer.campus.manager.service.bo.admin.AdminPageSearchBo;
import com.codedancer.campus.manager.service.vo.admin.AdminInfoVo;
import com.codedancer.campus.manager.service.vo.admin.AdminPageVo;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import javax.security.auth.message.AuthException;

public interface IAdminService {

    /**
     * 管理员登录
     * @param adminLoginBo
     * @return
     */
    String login(AdminLoginBo adminLoginBo)
        throws UnsupportedEncodingException, NoSuchAlgorithmException;

    /**
     * 获取用户信息
     * @param currentLoginUuid
     * @return
     */
    AdminInfoVo currentUserInfo(String currentLoginUuid) throws AuthException;

    /**
     * 分页查询管理员
     * @param adminPageSearchBo
     * @return
     */
    IPage<AdminPageVo> page(AdminPageSearchBo adminPageSearchBo);

    /**
     * 添加管理员
     * @param adminAddOrUpdateBo
     */
    void add(AdminAddOrUpdateBo adminAddOrUpdateBo);

    /**
     * 修改管理员
     * @param adminAddOrUpdateBo
     */
    void update(AdminAddOrUpdateBo adminAddOrUpdateBo);

    /**
     * 启用管理员
     *
     * @param uuid
     * @param currentLoginUuid
     */
    void enable(String uuid,String currentLoginUuid);

    /**
     * 禁用管理员
     * @param uuid
     * @param currentLoginUuid
     */
    void disable(String uuid, String currentLoginUuid);

    /**
     * 删除管理员
     * @param uuid
     */
    void delete(String uuid);
}
